D flip-flops are widely used integrated circuit devices. A D flip-flop includes a data input, a data output, and a clock input. The D flip-flop captures the value of the data input at a definite portion of the clock cycle, such as the rising edge of the clock signal received at the clock input. The captured value is sent out to the output at another time, for example, at the rising edge of a complementary clock of the clock signal. At other times, the output of the D flip-flop does not change. The D flip-flop can be viewed as a memory cell, a zero-order hold, or a delay line. The D flip-flops have many usages in integrated circuits. For example, the D flip-flops can be used as shift registers.